package com.ruoyi.device.domain.resp.hatdevice;

import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.device.domain.resp.fence.ElectricFenceResp;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;

/**
 * @Author wy
 * @Description 给前端的数据
 * @Date 2023/11/24 17:21
 * @Version 1.0
 */
@Getter
@Setter
@ToString
public class HatDeviceResp {

    private Long deviceId;

    /**
     * 安全帽的名称
     */
    private String deviceName;
    /**
     * 安全帽设备编码
     */
    private String deviceCode;

    /**
     * 区域编码(sys_dict_data获取)
     */
    private String sysOrgCode;

    private String sysOrgName;

    /**
     * 设备状态(sys_dict_data获取)
     */
    private String status;


    /**
     * 纬度
     */
   private BigDecimal lat ;

    /**
     * 经度
     */
   private BigDecimal lon;

    /**
     * 实时状态
     */
    private String realTimeState;


    /**
     * 接收到设备消息的最后一次的时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateTime;

    /**
     *  电子围栏绑定的用户信息
     */
    private ElectricFenceResp electricFenceResp;

    /**
     * 设备信息是否显示
     */
    private Boolean showFlag;

    /**
     *  设备是否分配给了用户并且用户绑定了电子围栏区域
     * @return
     */
    public Boolean getAllow() {
        //如果没有数据，说明没有绑定
        if(Objects.isNull(this.electricFenceResp)) {
            return false;
        }else{
            return StrUtil.isNotBlank(this.electricFenceResp.getUserName());
        }
    }

    public HatDeviceResp() {
        this.showFlag = false;
    }
}
